#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void SelectSort(char **arr , int len)
{
    for (int i = 0; i < len; ++i)
    {
        int min = i; 

        for (int j = i+1; j < len;  ++j)
        {
            if(strcmp(arr[j], arr[min]) < 0)
            {
                min = j;
            }
        }

        //交换
        if(min != i)
        {
            char *temp = arr[min];
            arr[min] = arr[i];
            arr[i] = temp;
        }

    }
}

void PrintArray(char **arr , int len)
{
    for (int i = 0; i < len; ++i)
    {
        printf("%s \n",  arr[i]);   
    }

    printf("\n");
}

int main(int argc, char const *argv[])
{
    char* pArr[] = {"ddd","ccc",  "fff", "hhh", "ppp", "rrr"};
    //pArr是什么类型?  pArr是数组名,指向数组首元素的地址  首元素是char*   首元素地址就是char** 

    int len = sizeof(pArr) / sizeof(char *);

    PrintArray(pArr, len);

    //选择排序
    SelectSort(pArr, len);
    
    PrintArray(pArr, len);
    return 0;
}
